perm filename RMOT.F4[SCR,LCS]1 blob sn#369202 filedate 1978-07-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00005 ENDMK
C⊗;

C≡≡≡≡≡≡ THIS IS THE REQUIRED HEADER FOR 'SCORE' SUBROUTINES. ≡≡≡≡≡≡≡
	SUBROUTINE SUBR
	COMMON /P/P(1) /PL/PL(1) /INS/ INST(27),BG(60)
	COMMON INUM,IPAR,CNT(27),BT,IREST,DF,DUR(27)
C   INUM=INST#  IPAR=PARAM#  
C   BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
C   IF IREST IS <0, THAT NOTE WILL BE A REST.  
C   INST=INST. NAME,  BG=INSTS' BEGIN TIMES.
C   NOTE #S IN SUBROUTINE: (1-84)  C4=37  FS4=43  C5=49  ETC.
C   F1=86  F15=100 (NO F16!)
 
	DIMENSION W(100),X(100),Y(100),Z(100),T(6),
	1 A(100),B(100),C(100),D(100)
	DATA T/4.,-7.,12.,-18.,0,-10./

	IF(CNT(1).NE.1)GO TO 1
	DO 100 K=1,100
C ZERO ALL ARRAYS
	W(K)=0
	X(K)=0
	Y(K)=0
	Z(K)=0
	A(K)=0
	B(K)=0
	C(K)=0
100	D(K)=0
	K8=0
	K7=0
	K6=0
	K5=0
	K4=0
	K3=0
	K2=0
	K1=0
	J=0
	K=0
C K IS COUNTER FOR MOTIVES. J IS MEMORY OF MOTIVE NUMBER (LATER).
C 1ST STEP OF INITIALIZATION NOW COMPLETE.

1	IF(INUM.NE.1)GO TO 2
C RHYTHMS ARE STORED IN ARRAYS A,B,C,D; NOTES IN W,X,Y,Z.
	K8=K8+1
	K7=K7+1
	K6=K6+1
	K5=K5+1
	K4=K4+1
	K3=K3+1
	K2=K2+1
	K1=K1+1
	Z(K8)=P(IPAR)
	Y(K7)=P(IPAR-1)
	X(K6)=P(IPAR-2)
	W(K5)=P(IPAR-3)
	D(K4)=P(IPAR-4)
	C(K3)=P(IPAR-5)
	B(K2)=P(IPAR-6)
	A(K1)=P(IPAR-7)
	RETURN
C NOW ALL INITIALIZATION DONE.
 
2	IF(IPAR.EQ.3)GO TO 30
	IF(K.NE.0)GO TO 3
20	I=P(2)
C PICK A  MOTIVE  (A NUMBER FROM 1 THROUGH 4)
	IF(I.NE.J)GO TO 4
	I=I+1
	IF(I.GT.4)I=1
C ABOVE GAURDS AGAINST REPEATING PREVIOUS MOTIVE.
4	K=1+100*(I-1)
	KK=K
	J=I
C REMEMBER WHAT LAST 'I' WAS - SAVE IT IN 'J'.
3	Q=A(K)
	IF(Q.LT.0.AND.A(K-1).LT.0)GO TO 20
C 2 RESTS IN A ROW MEAN END OF MOTIVE.
	P(2)=Q
C THIS IS FOR TEMPO CHANGES. ORIGINAL P2=1"*TEMPO FACTOR.
	RETURN
30	L=P(3)
	IF(K.EQ.KK)TR=T(L)
	P(3)=W(K)+TR   
	PL(3)=2
C ABOVE SO IT WILL PRINT NAMES OF NOTES.
	K=K+1
	RETURN
	END